#include <pybind11/pybind11.h>

#include "ColorBarOptionsWrapper.h"
#include "LayerOptionsWrapper.h"
#include "ViewEventWrapper.h"
#include "ViewerWrapper.h"

PYBIND11_MODULE(_odv_core, m) {
  bind_CoordinateSystem(m);
  bind_MapProjection(m);

  bind_ColorBarOptions(m);

  bind_LayerType(m);
  bind_DataDimensionOrder(m);
  bind_RenderMode(m);
  bind_ShadingMode(m);
  bind_PointIconType(m);
  bind_PointIconDataType(m);
  bind_ImageDriver(m);

  // 绑定模板类
  bind_DataRangeTemplate(m);

  // 绑定基类
  bind_LayerOptions(m);

  // 绑定派生类
  bind_ColorMapOptions(m);
  bind_ImageOptions(m);
  bind_ContourLineOptions(m);
  bind_PointIconOptions(m);
  bind_FeatureOptions(m);
  bind_ValuePlotsOptions(m);
  bind_GraticuleOptions(m);

  bind_ViewerEvent(m);

  bind_Viewer(m);
}